package com.chen.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class Result {

    /**
     * 状态码常量：
     */
    //成功
    public static final int CODE_OK = 200;
    //业务错误
    public static final int CODE_ERR_BUSINESS = 501;
    //用户未登录
    public static final int CODE_ERR_ONLOGINED = 502;
    //系统错误
    public static final int CODE_ERR_SYS = 503;

    //成员属性
    private int code;//状态码

    private boolean success;//响应成功为true，失败为false

    private String message;//响应信息

    private Object data;//响应数据

    //成功相应的方法 -- 返回的Result中只封装了成功状态码
    public static Result ok(){
        return new Result(CODE_OK,true,null,null);
    }
    //成功响应的方法 -- 返回的Result中只封装成功状态码和响应信息
    public static Result ok(String message){
        return new Result(CODE_OK,true,message,null);
    }
    //成功响应的方法 -- 返回的Result中只封装成功状态码和响应数据
    public static Result ok(Object data){
        return new Result(CODE_OK,true,"",data);
    }
    //成功响应的方法 -- 返回的Result中只封装成功状态码、响应信息和响应数据
    public static Result ok(String message,Object data){
        return new Result(CODE_OK,true,message,data);
    }
    //失败响应的方法 -- 返回Result中只封装了失败状态码和响应信息
    public static Result err(int errCode, String message){
        return new Result(errCode,false,message,null);
    }
    //失败响应的方法 -- 返回Result中只封装了失败状态码、响应信息和响应数据
    public static Result err(int errCode, String message, Object data){
        return new Result(errCode,false,message,data);
    }
//    //业务错误
//    public static Result errBusiness(){
//        return new Result(CODE_ERR_BUSINESS,false,"业务错误",null);
//    }
//    //用户未登录
//    public static Result errOnlogined(){
//        return new Result(CODE_ERR_ONLOGINED,false,"用户未登录",null);
//    }
//    //系统错误
//    public static Result errSys(){
//        return new Result(CODE_ERR_SYS,false,"系统错误",null);
//    }
}
